Activating a video based on location in screen

ABSTRACT

Providing a method for browsing portions of videos called video previews. The video previews may be associated with a link or predefined duration of a full video, such that the video preview is generated from a portion of the full video and viewed by a user. The video previews are configured to play a series of images associated with images from the portion of the full video when the video preview is activated.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of non-provisional U.S. patentapplication Ser. No. 14/173,753, filed on Feb. 5, 2014, which is anon-provisional of U.S. Patent Application No. 61/761,096, filed on Feb.5, 2013, U.S. Patent Application No. 61/822,105, filed on May 10, 2013,U.S. Patent Application No. 61/847,996, filed on Jul. 18, 2013, and U.S.Patent Application No. 61/905,772, filed on Nov. 18, 2013, which areherein incorporated by reference in their entirety for all purposes.

This application is related to commonly owned and concurrently filedU.S. patent application Ser. No. 14/173,697, entitled “Video PreviewCreation with Link” (Attorney Docket 91283-000710US-896497), U.S. patentapplication Ser. No. 14/173,715, entitled “User Interface for VideoPreview Creation” (Attorney Docket 91283-000720US-897301), U.S. patentapplication Ser. No. 14/173,732, entitled “Video Preview Creation basedon Environment” (Attorney Docket 91283-000730US-897293), U.S. patentapplication Ser. No. 14/173,740, entitled “Video Preview Creation withAudio” (Attorney Docket 91283-000740US-897294), U.S. patent applicationSer. No. 14/173,745, entitled “Generation of Layout of Videos” (AttorneyDocket 91283-000750US-897295), which are herein incorporated byreference in their entirety for all purposes.

BACKGROUND

Users commonly provide video content to websites (e.g., YouTube®), whichcan be referred to as “posting a video.” For example, the user canassociate a title, a static thumbnail image, and/or a textualdescription with the video. Other users (e.g., viewers) can access andview this content via the websites. For example, the viewers can see avideo's title and static thumbnail of the video before deciding whetherto play the full video. However, the viewers may find it difficult toselect particular videos of interest because the title may not bedescriptive of the contents of the video, the static thumbnail image maynot summarize the essence of the video, or the textual description withthe video may be a poor signal for whether the video will be interestingto the viewer. Thus, the viewers may spend significant amounts of timesearching and watching videos that are not enjoyable to the viewer.

Additionally, if the viewer selects and starts watching a video, itoften takes the viewer a significant amount of time before the viewercan determine whether they like the video and want to keep watching, orwhether they want to select another video. When the videos arerelatively short (e.g., 3 minutes), the viewer may watch a substantialportion of the video before they can determine whether they would beinterested in viewing the video. This process can often be frustratingto a viewers who are accustomed to instant gratification provided byother consumer internet services, and the viewers may stop watchinginternet videos because it takes too long for them to find aninteresting video to watch.

SUMMARY

Embodiments of the present invention provide methods, systems, andapparatuses for viewing portions of videos called “video previews.” Oncethe video previews are created, they may be associated with a videochannel (e.g., a collection of videos) for a viewer to browse. Eachvideo channel or video in a channel can provide short, playable videopreview that users can view to better decide whether to watch the fullvideo or video channel. For example, when the video preview moves to aparticular location on a display, the video preview may start playing(e.g., within a frame object). In another example, if the viewer selectsa video preview, a full video associated with the video preview can beprovided. In another example, a video preview can represent the videochannel or collection, and a selection of the video preview can providean interface with video previews of the videos of the channel. Also,embodiments can organize video previews and channels to be visuallypleasing and efficient for a viewer.

Other embodiments are directed to systems and computer readable mediaassociated with methods described herein.

A better understanding of the nature and advantages of the presentinvention may be gained with reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a flowchart illustrating a method of creating a videopreview, organizing the video previews, and providing a user interfacethat includes the video previews according to an embodiment of thepresent invention.

FIG. 2 shows block diagrams of various subsystems used to generate orprovide a video preview.

FIG. 3 shows a flowchart illustrating a method of generating a videopreview object according to an embodiment of the present invention.

FIG. 4 shows a graphical user interface for browsing one or more videopreviews according to an embodiment of the present invention.

FIG. 5 shows a graphical user interface for browsing one or more videopreviews according to an embodiment of the present invention.

FIG. 6 illustrates video previews that are configured to play based onthe location of other video previews preview according to an embodimentof the present invention.

FIG. 7 illustrates video previews that are configured to play based onthe location of other video previews according to an embodiment of thepresent invention.

FIG. 8 illustrates the correlation of video previews with audioaccording to an embodiment of the present invention.

FIG. 9 shows a block diagram of a computer apparatus according to anembodiment of the present invention.

DEFINITIONS

A “video preview” is a visual representation of a portion of a video(also referred to as a “full video” to contrast a “video preview” of thevideo). The full video may correspond to the entirety of a video file ora portion of the video file, e.g., when only a portion of the video filehas been streamed to a user device. The preview may be shorter than thefull video and the full video can be shorter than the complete videofile. The preview can convey the essence of the full video. The videopreview is shorter (e.g., fewer images, less time) than a full (e.g.,more images, longer time, substantially complete) video. In variousembodiments, a preview can be a continuous portion of the full video orinclude successive frames that are not continuous in the full video(e.g., two successive frames of the preview may actually be one or moreseconds apart in the full video).

A “frame object” is an object on a GUI that is configured to play avideo previews (e.g., an iframe, a frame in a current window, framebuffer object (FBO)). Frame objects (e.g., placeholders, 2-dimensionalboxes, windows, squares) can be generated by a computing device fordisplaying the video preview. In some embodiments, the frame object willalso provide filters or effects for the video preview (e.g., defined bythe computing device, defined by a programming language that generates aframe object class).

A “composite of video previews” (also referred to simply as a“composite” or “preview composite”) is an area where one or more relatedvideo previews will be played. If the composite has one video preview,then the composite simply corresponds to playing the preview. When thecomposite includes multiple previews, many frame objects can beassociated with each other, each playing a video preview. The videopreviews in a composite can each link to the same full video. In oneembodiment, the creator of a preview can identify the previews toinclude in a composite, and the composite can exist as a single displayobject, where the previews of the composite start playing at the timethe composite is activated. The shape of a composite of video previewscan be a square (2 blocks×2 blocks, N blocks×N blocks) or rectangle(1×N, 2×N, 2×2 with blocks comprising unequal sides, N×N with blockscomprising unequal sides). The composite of video previews may have aright-wise or left-wise orientation.

A “cluster of video previews” (also referred to simply as a “cluster”)is a group of composites that are grouped together because they arerelated in some way. In one embodiment, the composites may relate toeach other and be placed in a cluster imply by being next to each otherin a stream of video previews pulled from a queue by a computing device.In another embodiment, the composites in a cluster may be filtered bycategory, popular items, and/or trending items, and thus the compositesof a cluster may be related to each by the matching filter criteria.Each composite in the cluster can link to different full videos.

A “channel” or “collection” is a group of related videos that isaccessible by a user and organized in a layout. For example, a user maydecide to associate three composites (e.g., video previews relating tobaking a cake, baking a cookie, and freezing ice cream) in a singlecollection called “Desserts I Love.” Once the user associates the threecomposites, the composites may form a cluster. The cluster may beorganized in a layout that will make it aesthetically pleasing for otherusers to view the cluster. The user can access their collection called“Desserts I Love” through a web browser, like a bookmarked area ortoolbar, at a later time. Once the user accesses their collection, eachof the composites that the user has associated with this collection canbe displayed so the user can easily access them again.

DETAILED DESCRIPTION

Embodiments of the present invention can enhance video viewing byproviding short, playable video previews. Users or viewers (usedinterchangeably) can watch the video previews provided through awebsite, computing device, messaging service, television, or otherdevices to better decide whether to watch a full video or channel ofvideos.

I. Providing Video Previews

FIG. 1 shows a flowchart illustrating a method 100 of creating a videopreview, organizing the video previews, and providing a user interfacethat includes the video previews according to an embodiment of thepresent invention. The method 100 may comprise a plurality of steps forimplementing an embodiment of creating a video preview with a linkperformed by various computing devices (e.g., video server, providerserver, user device, third party server).

At step 110, a video preview may be generated. Embodiments of theinvention may provide a graphical user interface for a user that allowsthe user to select a portion of a video (e.g., a full video) to use as avideo preview. The system may generate the video preview based on theinput received from the user. The input may be active (e.g., the userproviding an identification of a video portion of a full video) orpassive (e.g., a plurality of users view a section of the full video athreshold number of times, which identifies a video portion of a fullvideo). Additional means of generating video previews can be found inU.S. patent application Ser. No. 14/173,697, entitled “Video PreviewCreation with Link” (Attorney Docket 91283-000710US-896497), U.S. patentapplication Ser. No. 14/173,715, entitled “User Interface for VideoPreview Creation” (Attorney Docket 91283-000720US-897301), U.S. patentapplication Ser. No. 14/173,732, entitled “Video Preview Creation basedon Environment” (Attorney Docket 91283-000730US-897293), and U.S. patentapplication Ser. No. 14/173,740, entitled “Video Preview Creation withAudio” (Attorney Docket 91283-000740US-897294), which are incorporatedby reference in their entirety.

At step 120, one or more video previews may be organized into one ormore channels or collections. For example, the method 100 can associatethe video preview generated in step 110 (e.g., a 4-second animated GIFof a snowboarder jumping off a ledge) with a channel (e.g., a collectionof videos about snowboarders). In some embodiments, the video previewsmay be organized in a group (e.g., a composite, a playable group, acluster of video previews) and displayed on a network page. Additionalinformation about the organization and layout of video previews can befound in U.S. patent application Ser. No. 14/173,745, entitled“Generation of Layout of Videos” (Attorney Docket91283-000750US-897295), which is incorporated by reference in itsentirety.

At step 130, a GUI may be provided with the video previews. For example,the GUI may provide one or more channels (e.g., channel relating tosnowboarders, channel relating to counter cultures), one or more videoswithin a channel (e.g., a first snowboarding video, a secondsnowboarding video, and a first counter culture video), or a networkpage displaying one or more video previews. The video previews may beshared through social networking pages, text messaging, or other means.

II. System for Providing Video Previews

Various systems and computing devices can be involved with variousworkflows used to activate a video based on a location in a screen.

FIG. 2 shows block diagrams of various subsystems used to generate orprovide a video preview. For example, the computing devices can includea video server 210, a provider server 220, a user device 230, or a thirdparty server 240 according to an embodiment of the present invention. Insome embodiments, any or all of these servers, subsystems, or devicesmay be considered a computing device.

The computing devices can be implemented various ways without divertingfrom the essence of the invention. For example, the video server 210 canprovide, transmit, and store full videos and/or video previews (e.g.,Ooyala®, Brightcove®, Vimeo®, YouTube®, CNN®, NFL®′ Hulu®, Vevo®). Theprovider server 220 can interact with the video server 210 to providethe video previews. In some embodiments, the provider server 220 canreceive information to generate the video preview (e.g., a timestamp toa location in the full video, the link to the full video, the full videofile, a push notification including the link to the full video). Theuser device 230 can receive a video preview and/or full video to view,browse, or store the generated video previews. The third party server240 can also receive a video preview and/or full video to view or browsethe generated video previews. In some embodiments, the user device 230or third party server 240 can also be used to generate the video previewor create a frame object.

Additional information about the video server 210, provider server 220,user device 230, and third party server 240 can be found in U.S. patentapplication Ser. No. 14/173,697, entitled “Video Preview Creation withLink” (Attorney Docket 91283-000710US-896497) and U.S. patentapplication Ser. No. 14/173,715, entitled “User Interface for VideoPreview Creation” (Attorney Docket 91283-000720US-897301), which areincorporated by reference in their entirety.

In some embodiments, the video server 210, provider server 220, a userdevice 230, and third party server 240 can be used to activate a videopreview. For example, the computing device (e.g., provider server 220,user device 230) may receive a video preview that comprises one or moreimages. The images may be associated with a video portion of the fullvideo that corresponds to a series of images from the full video. Thecomputing device can generate a frame object for displaying the videopreview when the frame object is located on a display of a computingdevice. In response to the frame object moving to a particular locationon the display, the frame object may be configured (e.g., by thecomputing device) to play the video preview within the frame object.

More than one frame object may be supported as well. For example, when asecond video preview is received, the computing device generate a frameobject for displaying the second video preview when the frame object islocated on a display of a computing device. In response to the secondframe object moving to a particular location on the display, the secondframe object may be configured (e.g., by the computing device) to playthe second video preview.

In some embodiments, the video preview may be configured to stop playing(e.g., by the computing device). For example, a first video preview maybe stopped from playing when the second frame object is located at theparticular location on the display in the GUI. In another example, thevideo preview may be stopped from playing when an activation device(e.g., finger, mouse pointer) touches or taps on a screen of thecomputing device, or when the frame object is configured to stop playingafter a certain number of iterations.

III. Playing a Video Preview

Video previews and/or frame objects can be created to display the videopreview in a particular location on a screen. Video previews may beactivated and selected. For example, a video preview can be configuredto play a series of images when the video preview is tapped or selectedby a user (e.g., activated) and retrieve a full video when the videopreview is tapped or selected a second time (e.g., selected). The videopreview may also be configured to be activated based on its location ina screen. In some examples, the particular location on the screen can beidentified by a region of the screen, defined by two boundary lines, orjust one (e.g., center) line.

FIG. 3 shows a flowchart illustrating a method of generating a videopreview object according to an embodiment of the present invention(e.g., performed by a computing device including a user device 230). Insome embodiments, a video may begin as a series of frames or images(e.g., raw format) that are encoded by the video server 210 into a fullvideo. The full video may reduce the size of the corresponding file andenable a more efficient transmission of the full video to other devices(e.g., provider server 220, user device 230). In some embodiments, theprovider server 220 can transcode the full video (e.g., change theencoding for full video to a different encoding, encoding the full videoto the same encoding or re-encoding) in order to generate and transmitthe video preview. For example, transcoding may change the start time ofa video, duration, or caption information.

The user may create a video preview that may later be accessed by aviewer. For example, the user may select the best 1-10 seconds of avideo to convey the essence of the full video. The video preview can beshorter (e.g., fewer images, less time) than a full (e.g., more images,longer time, substantially complete) video. In some embodiments, thevideo preview comprises less than five percent of the images from thefull video, or another relatively small number of images in comparisonto the full video. The system associated with the GUI may generate asmaller file to associate with the video portion (e.g., animated GIF,MP4, collection of frames, RIFF). The system may provide the GUI on avariety of systems. For example, the GUI can be provided via an internetbrowser or client application (e.g., software configured to be executedon a device) and configured to run on a variety of devices (e.g.,mobile, tablet, set-top, television).

At block 310, a computing device receives a video preview. For example,a provider server 220 can transmit a video preview to a user device 230or a third party server 240 through a GUI or application (e.g., a webbrowser). The video preview may comprise a set of images, e.g., from aportion of a full video, multiple portions from one full video, ormultiple portions from multiple full videos.

In one embodiment, the computing device can be used to browse a websitethat contains video previews. For example, a browser can be used toaccess a server that stores the video previews. The server can sendvideo previews to the computing device (e.g., user device 230). Theserver can send a series of video previews at one time, so that abrowser of the computing device can display the video previewsconsecutively without having to wait for communications from the serverto provide a next video preview.

At block 320, a frame object is generated for displaying the videopreview. For example, the video preview may play the set of imageswithin the frame object when the frame object is located at a particularlocation on a display in a GUI of a computing device. The frame objectmay be configured to play the video preview within the boundaries of theobject.

At block 330, a series of frame objects may be displayed (e.g., in aGUI). For example, the series can include the frame object. In someembodiments, the GUI can allow motion of the frame objects in the GUI.In some embodiments, the user may touch a surface of the computingdevice that displays the GUI or use an activation device to move theframe objects. For example, when two frame objects are displayed on theGUI, the user can swipe the screen (e.g., touch a surface of a computingdevice and drag an activation device, including a finger, mouse pointer,etc.) to move the second frame location to the particular location onthe display.

At block 340, the frame object can be identified as having moved to aparticular location. For example, the computing device may identify thatthe frame object has moved to a particular location on the display inthe GUI. The computing device may identify the current location of theframe object (e.g., pixel location, relative window location, inrelation to a “scrolling line” as shown in FIGS. 6-7, etc.) and comparethe current frame location with the particular location (e.g., asdefined within the GUI, defined by the video preview, or defined withinthe frame object using data obtained from the GUI or a server). When thevideo preview is placed in a particular location (e.g., the middle of abrowser window, 10 pixels from the edge of the screen, in screen), thevideo preview can be activated.

The movement to a particular location on the display may activate thevideo preview. When the user activates the video preview (e.g., byswiping the frame object to the left so that it is in the middle of thescreen, playing video previews simultaneously, one visible videopreview). In some embodiments, the user may touch a surface of thecomputing device that displays the GUI or use an activation device toactivate the frame objects. For example, when two frame objects aredisplayed on the GUI and the first frame object is playing the firstvideo preview, the user can swipe the screen (e.g., touch a surface of acomputing device and drag an activation device, including a finger,mouse pointer, etc.) to activate the second video preview.

The deactivation of a preview can be similarly determined by a location,which may be the same or different than the particular location used foractivation. For example, the video can be activated when it leaves theparticular location or reaches another location. Various embodiments canrestrict the number of previews playing at any one time.

At block 350, the video preview may be played within the frame object.For example, the video preview may be played in response to movement.Once the frame is identified as moving or at the point where the frameobject has moved to a particular location on the display, the videopreview may be played within the frame object.

Once the activation is identified, the browser can play the videoportion. For example, the browser can play the video portion in acontinuous loop, a limited loop that would stop after a certain numberof times, or stop after one time. The browser may also play the videopreview forwards and/or backwards.

A. Composites

Composites may be supported. For example, a composite may be an areawhere one or more related video preview blocks will be played, eachvideo preview in a composite linking to the same full video. When a 2×2composite is placed in a particular location (e.g., more than 50%visible to a user, in the middle of the browser, when the adjacent videopreview is fully viewable), the video preview can be activated. In yetanother embodiment, the location of other video previews around a firstvideo preview can determine when the first video preview is activated.In still another embodiment, a first video preview can be activated oncean adjacent video preview has played once.

In an embodiment, frame objects can be associated with a composite ofvideo previews. For example, a first frame object can be associated witha composite of video previews, which includes one or more frame objectsthat move together when one of the frame objects is moved in the GUI.The first frame object can display a first video preview. When thecomposite of video previews is activated, the first video preview canplay. Other frame objects may also be displayed by the GUI. For example,when a second frame is displayed that is not part of the composite ofvideo previews, the second frame object may play. Alternatively, inresponse to identifying that the composite of video previews is locatedat the particular location in the GUI of the computing device, the videopreviews associated with the composite of video previews can playinstead of the second video preview. In some examples, the videopreviews associated with the composite of video previews can playsimultaneously, without also playing the second video preview associatedwith the second frame object.

B. Selecting Video Preview

The user may also select the video preview (e.g., double-tapping thevideo preview, double-clicking) and the browser can transmit a selectionrequest to the server. The computing device can retrieve the linkassociated with the full video (e.g., from a data store associated withthe video server 210, the data store that stores the full video in anoriginal location). For example, in response to receiving a selection ofthe frame object from a user, the full video may be played. The fullvideo can correspond with the video preview and include at least aportion of the set of images that were included in the video preview.

In an embodiment, the computing device may also retrieve metadata (e.g.,title, caption). For example, if the viewer of the video preview uses aweb browser that translates all webpages and text to Spanish, thecaption can be translated to Spanish as well. The caption may beadjusted by color, font, size, position on a screen, or other options aswell. The caption may be a “soft caption” that is independent of a videopreview file, instead of a “hard caption” that is part of the fileformat. Metadata may also include categories or classifications of thevideo preview (e.g., to help organize a video preview on a display).

The browser can display the full video from the link or an application.The location of the full video can be from an external location (e.g.,by services provided by Hulu®, Netflix®, iTunes® or internally at thecomputing device. In an embodiment, the full video can continueseamlessly from the point when the video preview stopped.

IV. Browsing One or More Video Previews

Users may browse to one or more video previews through the use of acomputing device (e.g., user device 230). The video previews can bedisplayed via a software application, like a graphical user interface(GUI), web browser, television, or other methods of viewing digitalimages.

A. GUI for Browsing Video Previews

FIG. 4 shows a GUI for browsing one or more video previews according toan embodiment of the present invention. The GUI 400 can allow a user tobrowse a plurality of video previews through one or more frame objects410, 420, 430. The series of frames may be reserved locations associatedwith the GUI for static images, video previews, and the like. The seriesof frame objects may comprise a first frame object 410, a second frameobject 420, and a third frame object 430. The GUI 400 may also include aseries of menu options, a selected menu option, a channel, a background,or other information for browsing and playing video previews.

As shown, more than one frame object may be displayed at a particulartime. For example, a first frame object and second frame object can bedisplayed at the same time, so that at least a portion of the first andsecond frame objects are displayed by the GUI simultaneously. Displayingthe frame objects may not be a factor in playing the video preview,which may instead rely on the location of the frame on the display orthe activation of associated frame objects in a composite.

The frame objects may be placed at relative positions in the GUI for thevideo previews to play. Each position may or may not have a playingvideo preview. In an embodiment, the first frame 410 can play the videopreview because the first frame is located in substantially the middleof the GUI. The second frame 420 and the third frame 430 would not be inthe middle of the screen, so these frames could display a static imageor a portion of the static image associated with the video preview.

In an embodiment, the viewer can activate the thumbnail associated withthe video preview by zero-click viewing (e.g., based on the location ofthe video preview and not a click or selection of a video preview). Forexample, once a video preview is placed in a particular location (e.g.,the middle of a browser window, 10 pixels from the edge of the screen,off screen, in screen), the video preview can be activated.

In some embodiments, the activation by the user can transmit anactivation request from the browser to a computing device. In otherembodiments, the activation may be contained within the frame objet, sothat no correspondence is needed between the frame object and thecomputing device. For example, the computing device can retrieve acataloged video portion associated with the activation request. Thecomputing device can transmit the video portion to the browser (e.g.,receive a video preview from a video server 210 and forward to abrowser, receive a video preview from a data store with a providerserver 220 and forward to a user device 230).

In some embodiments, the frame object may represent a link to a fullvideo or video channel. The viewer can select (e.g., double-tap, click)the activated video preview to access the full video. The viewer may beredirected to another application to view the full content. For example,a viewer may view Scarface on a GUI related to one of several videoservices (Netflix®, Hulu®, Comcast® television) from her iPad.Alternatively, the viewer may open a browser tab to watch the fullvideo, outside of the GUI disclosed herein. In another instance, thefull video could play in the same place as the video preview in the GUI.In some embodiments, the channels may be organized and socially curated.A curator can decide the order and programming.

The series of frames can move to different locations in the GUI 400. Forexample, first frame 410 may be activated automatically because it islocated in substantially the middle of the screen. The viewer can swipethe first frame 410 to the left. In response, the GUI would move thefirst frame 410 to the left-side of the screen and the second frame 420would be placed in the middle of the screen. The third frame 430 may notbe visible after the swipe. The second frame 420 could be automaticallyactivated, because it is located in the middle of the screen, and thefirst frame 410 would no longer be activated, because it is on theleft-side of the screen. When activated, the second frame 420 wouldprovide the location for the video preview associated with the secondframe to play.

In an embodiment, the video preview can begin to play in a nearimmediate response to a user's activation (e.g., when the video previewis in the middle of a screen and playing instantly) or selection (e.g.,when the video preview was activated and began playing, and the user hasdouble-tapped the location of the video preview to initiate the completevideo). For example, the video preview may play for the user when theimage file has not completely loaded on the device. This may beadvantageous because the user can get a substantially immediate responsefrom the GUI and a more gratifying video preview experience.

In some embodiments, a video preview can play in response to selecting aframe object. For example, in response to selecting a first frameobject, a second frame object can be provided that displays additionalcontent that corresponds to the video preview.

The second frame object can be displayed in the GUI (e.g., with thefirst frame object, in a new GUI without the first frame object).

In some embodiments, the video preview can play automatically orindependent of a receiving an activation of the video preview from auser. For example, when the browser opens at a computing device, thevideo preview can start playing.

In some embodiments, the video preview can be activated or selected inresponse to an activation device (e.g., a finger, mouse pointer,keyboard shortcuts). For example, the frame object and/or video previewcan be activated by placing an activation device in a substantiallyclose proximity to a location of the frame object. In another example,the activation may occur when the activation device is placed over thelocation of the frame object (e.g., hovering). The video preview may beselected in response to an activation device as well. For example, theframe object is selected by placing an activation device in asubstantially close proximity to a location of the frame object andclicking or tapping the frame object.

Further, the video previews may be encoded as images. This may beadvantageous because the video preview could be shorter in length and asmaller file size. The video preview could load quickly on mostconnections with little to no buffering. The video previews provided bythe frame object can play as the frame object is loaded.

Embodiments can provide a website or client application where users canbrowse short video previews and watch the full video or channel that isrepresented by the video preview. The website may provide additionalaspects of video browsing, including a series of menu options, aselected menu option, one or more channels that organize the videopreviews, and a background. The series of menu options can be a list ofcategories (e.g., sports, movies, comedy). The menu option may become aselected menu option by being selected or touched. The channel can be acollection of frame objects for a particular category. The backgroundmay be a static image located behind the video previews, series of menuoptions, and channel. The background could be a video playing thebackground of the current selected channel. The GUI can be designed tolet viewers browse videos, while still consuming the video that they hadpreviously selected.

FIG. 5 shows an alternative GUI for browsing one or more video previewsaccording to an embodiment of the present invention. For example, theGUI 500 on a computing device (e.g., mobile device, tablet, web browser,TV) can enable users to browse a hierarchy of video previews (e.g.,video preview in a frame object, composite, cluster, channel). The GUI500 can include an area for video previews 510, one or more channelpreviews and/or frame objects 520 (e.g., 521, 522, 523, 524, 525, 526),one or more playable groups of video previews or frame objects 530, amenu 530 (e.g., 540, 550, 560), and a background 570.

The one or more channel previews and/or frame objects 520 can berepresentative of a channel, where a channel is a collection of videopreviews of full videos of a same category. A channel preview cancorresponds to a video preview of the channel, a collection of videopreviews of the channel, or be a new video preview that is created fromone video or multiple full videos of the channel. For example, when theuser activates a frame object 521, the video preview associated with theframe object can start playing. When the user selects the frame object521, the user can be directed to a channel of video previews, e.g., aGUI as depicted in FIG. 4. The video previews in the channel may berelated (e.g., via metadata, by categories). In an embodiment, theactivated channel on the GUI plays an associated video preview.

When the frame object is not activated, the video preview may not play.In some instances, the frame object can show thumbnail images in placeof the activated video preview. When a user swipes, hits the right/leftarrows or clicks, additional channels may be visible on the GUI and thevideo preview for a particular channel can play automatically.

In some embodiments, the user can select (e.g., double-tap, click) theactivated video preview to access the full video. When the video previewrepresents a channel of videos, selecting the video preview may allowthe user to access the full videos associated with the channel.

In one embodiment, one video preview may be activated by default. Thevideo frame may be highlighted to signify that the frame has beenactivated and the video preview associated with the frame may begin toplay at the location of the frame. The user can view the GUI on a devicethat displays an indicator (e.g., mouse pointer). When the indicator islocated in near proximity to a channel (e.g., rolling over the channellocation), the video preview may being to play immediately.

In some examples, the series of frames 520 may be locations of channelsand each channel location can display a static image (e.g., a thumbnail)or a video preview. In an embodiment, the series of frames 520 may bedisplayed as a grid, such that there are multiple frames in each row andmultiple frames in each column.

The first frame 521 may be activated by default (e.g., because it islocated in the upper left-hand corner of the series of frames 520) andplay a video preview without the user's instructions (e.g., tapping,hovering a mouse pointer, swiping). In an embodiment, the first framecan be highlighted by a thicker border around the video preview tosignify that the first frame 521 has been activated. When the userselects (e.g., double-tap, click) the activated video preview for achannel, the device may display a GUI so that the user can access thefull videos associated with the channel.

A user may activate another channel (e.g., by placing a mouse pointer orindicator in near proximity to a channel), in which the video previewassociated with that channel may begin to play. For example, if the useractivates the second frame 522, a thicker border may be placed aroundthe second frame 522 and the video preview associated with the secondframe 522 can begin to play.

The frame objects can form a playable group 530 (e.g., including 522,523, 525, 526). For example, when an activation of frame object 521moves to frame object 522, the frame objects associated with frameobject 522 (e.g., 523, 525, 526) can also begin to play because they arepart of playable group 530. In some examples, the playable group 530 canbe associated with a single full video, such that when any of the frameobjects associated with the playable group is selected, the GUI willdisplay the full video associated with the playable group 530.

Other functionality may be provided by GUI 500 as well. For example, theuser may be able to browse any video previews that are highlighted orcurrently playing 540, any collections or channels 550 that the user isassociated with, and video previews or channels associated with aparticular category 560. A background 570 may also appear on the GUI 500(e.g., thumbnail, video preview, text).

B. Identifying that the Frame Object Moves to a Particular Location

FIG. 6 illustrates video previews that are configured to play based onthe location of other video previews preview according to an embodimentof the present invention. As shown, the cluster of video previews in GUI610 includes a first video preview 630, a second video preview 640, anda scrolling line 650. For example, the first video preview 630 may be acomposite of video previews in a 1×2 grid (1 column by 2 rows) from across country driving video showing a car driving near snow, and thesecond video preview 640 may be a composite of video previews in a 1×2grid from a racing video showing a car drifting on an empty freeway.These two sets of videos can be grouped in a cluster and played for theuser simultaneously.

When a cluster of video previews comes into view, the cluster can startplaying. The videos associated with the cluster of video previews can begrouped by any method, including when the video previews share a visualconsistency and/or come from a similar category. The consistency canmake logical sense to avoid seeming jarring for the user. The clustercan also portray visual beauty.

The plurality of video previews can be configured to play based on thelocation of other video previews. For example, as shown in GUIs 610 and620, the layout shows two video previews, a first video preview 630 anda second video preview 640. In GUI 610, the first video preview 630 isplaying and the second video preview 640 is not playing. In thisembodiment, the second video preview 640 is fully displayed, but it hasnot been activated while the first video preview 630 is still activated.The activation of the second video preview can be dependent on theactivation of the first video preview. In GUI 620, the second videopreview is activated and playing the video preview, once the first videopreview is no longer activated. For example, the video preview maybecome active as it moves toward the middle of the display.

C. Identifying a Scrolling Line

As illustrated in FIG. 6, a scrolling line 650 can be identified todetermine which video preview can be activated to play at a particularlocation. The scrolling line 650 may be an invisible line across thescreen of the user device 230 that helps identify which video preview(e.g., or playable group of video previews, cluster of video previews,etc.) should play at a particular time.

The approach for determining which playable groups play as the userscrolls through a grid of items depends on several ideas. For example,playable groups are generally constructed such that their height may notexceed the height of the screen of the user device 230. In anotherexample, some playable groups can play by default (e.g., when the screenviews the top of the layout, the first playable group should play, whenthe screen views the bottom of the layout, the last playable groupshould play, etc.). For playable groups near the middle of the layout, ascrolling line may be used to determine which playable group can play(e.g., if more than one playable group is visible on the screen of theuser device 230).

When the user has scrolled to a particular location, the GUI can computethe position of the scrolling line 650 on the screen of the user device230. For example, the determination of the scrolling line position “s,”given a “y” offset (e.g., y can represent the amount by which the userhas scrolled down from the top) can be expressed by the followinggeneral formula, with “v” as the height of the screen at the user device230 and “c” as the height of the video previews in the layout (e.g., thegrid):

When y<v,s=(3/2)y

When v≦y≦2v,s=y+(v/2)

When y>2v,s=y+v−(1/2)(c−v−y)

Some optimizations and/or special considerations may be made. Forexample, if the content height is less than thrice the view height, butgreater than twice the view height, the scrolling line may be a linefrom 0 to c. The scrolling line position can be expressed in thefollowing formula:

When 2v<c<3v,s=y(c/(c−v))

In another example, a padding can be added to the layout. For example,when a short grid is considered, the padding can help ensure that thelast playable group can play (e.g., a scrolling line from 0 to c may notplay the last playable group because the user may not be able to scrollfar enough for the scroll line to intersect the last playable group).The padding can be added to the height of “c” (e.g., the height of thevideo previews in the layout), such that c=2v and:

When a short grid or c=2v,s=2y

Once the scrolling line is determined, the playable group that iscurrently intersecting the scrolling line may play. For example, the GUImay analyze contiguous offset ranges of each of the playable groupsand/or cluster of video previews and place them into an interval tree(e.g., a binary interval tree that permits O(log(n)) analysis and/orlookups). An interval may be a set of real numbers with the propertythat any number that lies between two numbers in the set is alsoincluded in the set. The interval tree may use these intervals to allowan efficient lookup of playable groups. The lookup can find theintervals that overlap with any given interval. In some examples, theinterval tree is dynamic (e.g., the interval tree can allow insertionand deletion of intervals dynamically).

Other data structures (e.g., ordered tree data structures in addition toan interval tree) are available as well without diverting from theessence of the invention. For example, leaf contiguous intervals can bestored in an interval tree with a linked list. This can permitlinear-time traversal for slow scrolling (e.g., when the user isprogressing linearly from one interval to the next). The tree can allowfor efficient lookups if the user scrolled very quickly from oneposition in the grid to another. In another example, a skip list can beused. A skip list can also permit general logarithmic random lookups,but also simultaneously permits linear traversal of the data.

D. Identifying that a Second Frame Object is Still Active

FIG. 7 illustrates video previews that are configured to play based onthe location of other video previews according to an embodiment of thepresent invention. As shown, GUIs 710 and 720 include a plurality ofvideo previews. GUI 710 can display a plurality of video previews 730,740 and GUI 720 can represent the same video previews at a later pointin time. A scrolling line 750 may also be calculated. As shown, thevideo previews with a solid line are illustrated as active videopreviews and the video previews with a dashed line are illustrated asnot active video previews. For example, video preview 730 may be playingat the time associated with GUI 710 and may be off-screen at the timeassociated with GUI 720. Video preview 740 may be viewable at both timesassociated with GUI 710 and GUI 720.

As shown in GUI 710, the first video preview 730 occupies nearly 1/3 ofthe screen, while the second video preview 740 occupies nearly 2/3 ofthe screen. However, the second video preview 740 may not be activated(e.g., based on the configuration when generated, based on a locationrelative to other video previews in a composite). As shown in GUI 720,the second video preview 740 may still be activated even though thevideo preview is not fully displayed. The activation may be due to thecalculation of the scrolling line 750 and determining which one or morevideo previews are intersecting the scrolling line 750 at a particularpoint of time.

E. Determination of Location(s)

As shown in FIGS. 4-7, the frame objects and/or video previews canoccupy various portions of the screen to be activated, including themiddle of the viewable area, center, left, right, outside the viewablearea, or substantially close to any such location. The computing devicemay determine the location of the frame object in a variety of ways. Forexample, the computing device (e.g., provider server 220, user device230) can create a frame object that identifies the coordinates of theobject. When the frame object is loaded at a particular coordinatesetting, the frame object can be activated and play the video previewwithin the frame object. In another example, the computing device cancreate the frame object to compare other object properties (e.g.,imageview, button, iframe) with the user device's provided displayspecifications (e.g., scrollview.bounds). In yet another example, thecomputing device can create a frame object that identifies the frameobject in relation to a group of frame objects (e.g., cluster,composite) and automatically start playing the video preview displayedby the frame object when the preview frame object starts playing (e.g.,in a composite) or when the previous frame object stops playing (e.g.,in a cluster).

F. Correlation with Audio

FIG. 8 illustrates the correlation of video previews with audioaccording to an embodiment of the present invention. The GUI 800 caninclude one or more video previews 810, 820, 830 and correspondingaudio. The audio may correlate with the video preview, such that videopreview 820 corresponds with a first audio 850, video preview 810corresponds with a second audio 860, and video preview 830 correspondswith a third audio. Alternatively, a general audio file 880 cancorrespond with the plurality of video previews.

Audio may correlate with one or more video previews. For example, a GUI840 can display one or more audio files associated with one or morevideo previews in a temporal-based interface (e.g., thex-axis/horizontal-axis is the progression of time in which the audioplays). The user may be able to view or adjust (e.g., dragging, tapping,clicking, sliding) a visual representation of the audio (e.g. 850, 860,870, the background of GUI 840) in order to correlate the audio as theaudio plays with the video preview (e.g., duration, pitch, volume,fading) through the use of the GUI 840. In another example, thecomputing device can adjust the audio. Additional information relatingto audio with video previews can be found in U.S. patent applicationSer. No. 14/173,740, entitled “Video Preview Creation with Audio”(Attorney Docket 91283-000740US-897294), which is incorporated byreference.

When audio corresponds with a particular video preview, the location ofthe video preview may affect the audio (e.g., pitch, volume, fading,Doppler shift). For example, the audio may play while these previews areselected and/or activated, and the video associated with these groups ofvideo previews are playing. The audio associated with other compositesmay be silent. When a user swipes or changes the focus (e.g., clicks onan object displayed by the GUI other than the video preview) so thatother video previews and/or frame objects become activated, the systemcan gauge, in a Doppler Shift-like audio effect, how the audio wouldchange if an object was moving farther away from the user.

In another example, the pitch may change to seem like one video previewis physically moving farther away from the user. For example, when firstaudio 850 corresponding with video preview 820 is moved from onelocation to another location (e.g., from the center location to the farleft location, partially off the screen), the pitch for first audio 850may be adjusted to simulate that the source of the audio is movingfarther from the user. In another example, when second audio 860corresponding to video preview 810 is moved from one location to anotherlocation (e.g., from far left location to the center location), thepitch for second audio 860 may be adjusted to simulate that the sourceof the audio is moving closer to the user. The pitch may also change forthe audio associated with other composites to simulate the videosphysically moving closer to the user.

In some embodiments, the audio may fade in or out. For example, theremay be one video preview associated with one audio on a GUI. When thevideo preview appears on the screen (e.g., moving from right to left,video preview 810), the audio can fade in as the video preview movescloser to the center of the screen. The audio may also fade out thefarther the video preview moves to the center of the screen (e.g., nearthe location of video preview 830). In another example, in response toidentifying that the frame object is located at the particular locationon the display in the GUI of the computing device, the audio can befaded in or out, irrespective of the location of the video preview tothe center of the screen (e.g., top of the screen to bottom of thescreen, closer or farther from the corner of the screen).

When more than one video preview is identified on a GUI, the locationsof both video previews can affect the audio. For example, in response toidentifying that the first frame object is located at the particularlocation on the display in the GUI. A first audio file (that correspondswith the first video preview) can fade out and a second audio file (thatcorresponds with the second video preview) can fade in.

G. Sharing for Others to Browse

In one embodiment, users can share video previews through communicationmechanisms such as social networks and email. Because the video previewsare relatively small (e.g., a short duration, small file size, encodedto be easily transmittable), the video previews can be compelling toshare with other people. In addition because the file-size of the videomoment can be small, it can be embedded in the communication mechanismso that when the message is opened, the video moment will playinstantly. This can further increase the virality of a video-moment, asa recipient may not need to click on a link to see the video-preview,and instead the recipient can see it play immediately, making it morelikely that the recipient will forward the video previews on to otherpeople. For instance, a video preview could be attached to an email, andthe video preview could play instantly when another user receives theemail. Alternatively, the video preview could be posted to socialnetworks such as Facebook or Twitter and could play automatically withina stream of content the user is browsing.

V. Example Subsystems and Components

Any of the clients or servers may utilize any suitable number ofsubsystems. Examples of such subsystems or components are shown in FIG.9. The subsystems shown in FIG. 9 are interconnected via a system bus975. Additional subsystems such as a printer 974, keyboard 978, fixeddisk 979, monitor 976, which is coupled to display adapter 982, andothers are shown. Peripherals and input/output (I/O) devices, whichcouple to I/O controller 971, can be connected to the computer system byany number of means known in the art, such as input/output (I/O) port977 (e.g., USB, FireWire®). For example, I/O port 977 or externalinterface 981 (e.g. Ethernet, Wi-Fi, etc.) can be used to connect thecomputer apparatus to a wide area network such as the Internet, a mouseinput device, or a scanner. The interconnection via system bus allowsthe central processor 973, which may include one or more processors, tocommunicate with each subsystem and to control the execution ofinstructions from system memory 972 or the fixed disk 979 (such as ahard drive or optical disk), as well as the exchange of informationbetween subsystems. The system memory 972 and/or the fixed disk 979 mayembody a computer readable medium. Any of the data mentioned herein canbe output from one component to another component and can be output tothe user.

It should be understood that any of the embodiments of the presentinvention can be implemented in the form of control logic using hardware(e.g. an application specific integrated circuit or field programmablegate array) and/or using computer software with a generally programmableprocessor in a modular or integrated manner. As user herein, a processorincludes a multi-core processor on a same integrated chip, or multipleprocessing units on a single circuit board or networked. Based on thedisclosure and teachings provided herein, a person of ordinary skill inthe art will know and appreciate other ways and/or methods to implementembodiments of the present invention using hardware and a combination ofhardware and software.

Any of the software components or functions described in thisapplication may be implemented as software code to be executed by aprocessor using any suitable computer language such as, for example,Java®, C++ or Perl using, for example, conventional or object-orientedtechniques. The software code may be stored as a series of instructionsor commands on a computer readable medium for storage and/ortransmission, suitable media include random access memory (RAM), a readonly memory (ROM), a magnetic medium such as a hard-drive or a floppydisk, or an optical medium such as a compact disk (CD) or DVD (digitalversatile disk), flash memory, and the like. The computer readablemedium may be any combination of such storage or transmission devices.

Such programs may also be encoded and transmitted using carrier signalsadapted for transmission via wired, optical, and/or wireless networksconforming to a variety of protocols, including the Internet. As such, acomputer readable medium according to an embodiment of the presentinvention may be created using a data signal encoded with such programs.Computer readable media encoded with the program code may be packagedwith a compatible device or provided separately from other devices(e.g., via Internet download). Any such computer readable medium mayreside on or within a single computer program product (e.g. a harddrive, a CD, or an entire computer system), and may be present on orwithin different computer program products within a system or network. Acomputer system may include a monitor, printer, or other suitabledisplay for providing any of the results mentioned herein to a user.

Any of the methods described herein may be totally or partiallyperformed with a computer system including one or more processors, whichcan be configured to perform the steps. Thus, embodiments can bedirected to computer systems configured to perform the steps of any ofthe methods described herein, potentially with different componentsperforming a respective steps or a respective group of steps. Althoughpresented as numbered steps, steps of methods herein can be performed ata same time or in a different order. Additionally, portions of thesesteps may be used with portions of other steps from other methods. Also,all or portions of a step may be optional. Additionally, any of thesteps of any of the methods can be performed with modules, circuits, orother means for performing these steps.

The specific details of particular embodiments may be combined in anysuitable manner without departing from the spirit and scope ofembodiments of the invention. However, other embodiments of theinvention may be directed to specific embodiments relating to eachindividual aspect, or specific combinations of these individual aspects.

The above description of exemplary embodiments of the invention has beenpresented for the purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdescribed, and many modifications and variations are possible in lightof the teaching above. The embodiments were chosen and described inorder to best explain the principles of the invention and its practicalapplications to thereby enable others skilled in the art to best utilizethe invention in various embodiments and with various modifications asare suited to the particular use contemplated.

A recitation of “a”, “an” or “the” is intended to mean “one or more”unless specifically indicated to the contrary.

1.-19. (canceled)
 20. A method of browsing videos, the methodcomprising: receiving a video, wherein the video comprises a set ofimages; receiving, by a computing device, a frame object for displayingthe video, wherein the set of images are played within the frame objectwhen the frame object is located at a particular location on a displayin a graphical user interface (GUI) of the computing device; displaying,by the computing device, a series of frame objects in the GUI, theseries including the frame object, wherein the GUI allows motion of theframe objects in the GUI; identifying, by the computing device, that theframe object has moved to a particular location on the display in theGUI; and playing, by the computing device, the video within the frameobject in response to identifying that the frame object moves to aparticular location on the display in the GUI.
 21. The method of claim20, wherein the video is a first video, the frame object is a firstframe object, and the method further comprises: receiving a secondvideo; receiving a second frame object for displaying the second video;displaying the second frame object next to the first frame object in theGUI; and in response to identifying that the second frame object islocated at the particular location on the display in the GUI of thecomputing device, playing the second video within the second frameobject.
 22. The method of claim 21, further comprising stopping thefirst video from playing when the second frame object is located at theparticular location on the display in the GUI.
 23. The method of claim21, wherein a user touches a surface of the computing device thatdisplays the GUI and swipes the screen to move the second frame locationto the particular location on the display and play the second video. 24.The method of claim 21, wherein a section of the first frame object isdisplayed while the second frame object is displayed, so that at least aportion of the first and second frame objects are displayed by the GUIsimultaneously.
 25. The method of claim 21, further comprising: inresponse to identifying that the first frame object is located at theparticular location on the display in the GUI of the computing device,fading a first audio file out, wherein the first audio file isassociated with the first video; and fading a second audio file in,wherein the second audio file is associated with the second video. 26.The method of claim 20, further comprising in response to receiving aselection of the frame object from a user, playing a full video thatcorresponds to the video, wherein the full video includes at least aportion of the set of images in the video.
 27. The method of claim 20,wherein the video plays independent of a receiving an activation of thevideo from a user.
 28. The method of claim 20, wherein the frame objectis activated by placing a selection device in a substantially closeproximity to a location of the frame object.
 29. The method of claim 28,wherein the selection device is a finger.
 30. The method of claim 28,wherein the selection device is a mouse pointer.
 31. The method of claim20, wherein the frame object is selected by placing a selection devicein a substantially close proximity to a location of the frame object,and clicking the frame object.
 32. The method of claim 20, wherein theframe object is selected by placing a selection device in asubstantially close proximity to a location of the frame object, andtapping the frame object.
 33. The method of claim 20, wherein the videocomprises less than five percent of the images from a full video. 34.The method of claim 20, wherein the frame object is a first frame objectand the method further comprises: associating the first frame objectwith a composite of videos, wherein the composite of videos includes oneor more frame objects that move together when one of the frame objectsis moved in the GUI; displaying a second frame object that is not partof the composite of videos, wherein the second frame object displays asecond video; and in response to identifying that the composite ofvideos is located at the particular location in the GUI of the computingdevice, playing the videos associated with the composite of videos. 35.The method of claim 34, wherein the videos associated with the compositeof videos play simultaneously and not playing the second videoassociated with the second frame object.
 36. The method of claim 20,wherein the frame object is located at the particular location when theGUI is originally displayed by the computing device.
 37. The method ofclaim 20, wherein the frame object is a first frame object and themethod further comprises: in response to selecting the first frameobject, providing a second frame object that displays additional contentthat corresponds to the video, wherein the second frame object isdisplayed in the GUI.
 38. A computer product comprising a non-transitorycomputer readable medium storing a plurality of instructions that whenexecuted control a computer system to browsing videos, the instructionscomprising: receiving a video, wherein the video comprises a set ofimages; receiving a frame object for displaying the video, wherein theset of images are played within the frame object when the frame objectis located at a particular location on a display in a graphical userinterface (GUI) of a computing device; displaying a series of frameobjects in the GUI, the series including the frame object, wherein theGUI allows motion of the frame objects in the GUI; identifying that theframe object has moved to a particular location on the display in theGUI; and playing the video within the frame object in response toidentifying that the frame object moves to a particular location on thedisplay in the GUI.